import random
from faker import Faker
from tqdm import tqdm
# 生成日志的数量
num = 10000
# 创建一个 Faker 实例
fake = Faker()

# IP 地址随机生成函数
def generate_ip():
    return '.'.join([str(random.randint(0, 255)) for _ in range(4)])

# 随机生成状态码函数
def generate_status_code():
    return random.choice([200, 400, 500])

# 生成模拟日志函数
def generate_log():
    ip = generate_ip()
    status_code = generate_status_code()
    user_agent = fake.user_agent()
    return f"{ip} - - [{fake.date_time_this_year().strftime('%d/%b/%Y:%H:%M:%S %z')}] \"GET / HTTP/1.1\" {status_code} {random.randint(1, 10000)} \"{user_agent}\""

# 指定要保存的文件名
filename = 'access_logs_{}.txt'.format(num)

# 打开文件并写入日志
with open(filename, 'w') as f:
    for _ in tqdm(range(num) , desc=f'Genearting Logs: {num}', unit="logs"):  # 生成 100 行日志示例
        log_line = generate_log() + '\n'
        f.write(log_line)

print(f"日志已保存到文件 {filename}")
